package net.ib.mtalk.test.example;

import net.ib.mtalk.R;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;

/**
 * Activity 는 그 자체로는 껍데기만 존재하는 View 라고 생각하고,
 * 그 안에 알맹이가 Fragment 라고 볼 수 있다..
 * 
 * 만약 ExampleDetailActivity 가 하나의 새로운 Activity 로 존재한다면
 * ExampleDetailActivity 를 startActivity 로 실행 시키면 
 * 알맹이에 해당되는 Fragment 가 View 를 전체 차지하며 뜬다.
 * 
 * 그렇지 않고 이 View 의 알맹이인 Fragment 내용을 다른 Activity 에서 보여주고 싶다면
 * (landscape mode 에서 listView/listView 같은 경우)
 * Fragment 만 참조하여 가져가 보여주면 된다.
 * 
 * @author namkhoh
 *
 */
public class ExampleDetailActivity extends FragmentActivity	{
		
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.example_detail_layout);
		
		DetailFragment details = new DetailFragment();
		details.setArguments(getIntent().getExtras());
		
		getSupportFragmentManager()
			.beginTransaction()
			.add(R.id.fragment_detail, details)
			.commit();
		
	}
	 public void btnOnClick(View view) {
		Toast.makeText(this, "Start doing Somwting using network", Toast.LENGTH_SHORT).show();
		
//		NetworkReqBoxaa box = new NetworkReqBoxaa();
		
//		Intent intetnt = new Intent(this, ChatONService.class);
//		intetnt.putExtra(ServiceConstant.KEY_REQBOX, box);
		
//		startService(intetnt);
	}
	
	/**
	 * 
	 * 충분한 공간을 가져서 2개의 fragment 를 보일 수 있는 공간이 있다면
	 * 아래의 fragment 가 보인다.
	 * 
	 * @author namkhoh
	 *
	 */
	public static class DetailFragment extends Fragment {
		
		private String getBundleString() {
			return getArguments().getString("index");
		}
		
		/**
		 * DetailFragment 의 새로운 Instance 를 생성한다.
		 * 이 때, parameter 를 전달 받을 수 있다. 
		 * @param name
		 * @return
		 */
		public static DetailFragment newInstance(String name) {
			DetailFragment fragment = new DetailFragment();
			
			/**
			 * View 를 그릴 때 필요한 정보를 제공 받을 수 있다. 
			 */
			Bundle args = new Bundle();
			args.putString("index", name);
			fragment.setArguments(args);
			
			return fragment;
		}
		
		@Override
		public View onCreateView(LayoutInflater inflater, ViewGroup container,
				Bundle savedInstanceState) {
			
			TextView text = (TextView) inflater.inflate(android.R.layout.simple_list_item_1, container, false);
			
			text.setText(getBundleString());
			
			return text;
		}
	}
}
